package cn.mw.cmdb.service;

import cn.mw.cmdb.entity.FinanceReport.FinanceReportCheckResultVo;
import cn.mw.cmdb.entity.FinanceReport.FinanceReportMappingRuleInfo;
import cn.mw.components.mongodb.entity.SearchParam;

import java.util.List;
import java.util.Map;

public interface FinanceReportMappingRuleService {

    Boolean addOrUpdateFinanceReportMappingRule(FinanceReportMappingRuleInfo financeReportMappingRuleInfo) throws Exception;

    boolean batchDeleteFinanceReportMappingRule(List<String> ids) throws Exception;

    Object getFinanceReportMappingRuleByPage(SearchParam param) throws Exception;

    Object getApplicationScopeTree(List<Integer> channelIdList) throws Exception;

    Object getReportTree(Integer channelId) throws Exception;

    FinanceReportCheckResultVo reportCheck(Integer channelId, List<String> instanceIdList, String batchId) throws Exception;

    Object doReport(FinanceReportCheckResultVo financeReportCheckResultVo) throws Exception;

    Object queryReportResult(String historyId) throws Exception;

    FinanceReportCheckResultVo reDoReport(String historyId) throws Exception;

    Object getFinanceReportHistoryInfoByPage(SearchParam param) throws Exception;

    boolean batchDeleteFinanceReportHistory(List<String> ids) throws Exception;

    Map<String, Integer> getFinanceReportHistoryStatusCount(SearchParam param) throws Exception;
}
